package com.ruoyi.common.core.domain.entity.wechat;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.enums.UserStatus;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 微信小程序用户
 *
 * @author jiexiang.sun/Jason
 * @version 1.0.0
 * @create 2022-03-03 20:18
 **/
@Data
@TableName("wechat_user")
public class WechatUser implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    @TableId(type = IdType.INPUT)
    private Long userId;

    /**
     * 微信小程序角色（只能是一个）
     */
    private Long roleId;

    /**
     * 部门编号
     */
    private Long deptId;

    /**
     * 用户姓名
     */
    private String name;

    /**
     * 手机号码
     */
    private String phonenumber;

    /**
     * 用户性别
     */
    private String sex;

    /**
     * 用户头像
     */
    private String avatar;

    /**
     * 密码
     */
    private String password;

    /**
     * 帐号状态（0：待审核（不能登录）、1：审核通过（正常可登录）
     */
    private String status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 删除审核（2：提交删除审核）
     * 当该字段数据为2时，说明区县级用户用小程序在删除用户，
     * 这时候后台管理人员需要进行删除账号的确认审核，确认审核通过后，
     * 才可以被删除（修改delFlag删除状态为2，将当前字段值可以再还原为非2，或者置之不理也可以）
     */
    private String deleteAudit;

    /**
     * 账号注册时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date registerTime;

    /**
     * 账号状态是否正常
     *
     * @return true:正常账号、false:异常账号（异常原因：未审核账号）
     */
    public boolean accountNormal() {
        return this.status.equals(UserStatus.OK.getCode());
    }

    /**
     * 账号数据是否正常
     *
     * @return true：数据正常（未删除）、false：数据异常（已删除）
     */
    public boolean dateNormal() {
        return this.delFlag.equals(UserStatus.OK.getCode());
    }
}
